import React from 'react';
import ReactDOM from 'react-dom';
import {Provider} from "react-redux"
// import App from './App';
// import AppRoot from './AppRoot';
// import AppLifeCycle from './AppLifeCycle'
// import "./style.css"
// import AppRedux from './AppRedux'
// import AppReactRedux from './AppReactRedux'
import AppShoppingCar from './AppShoppingCar'
import {store} from './store'




// 使用react-redux的<Provider>为App组件提供store的环境
ReactDOM.render(<Provider store={store}><AppShoppingCar /></Provider>, document.getElementById('root'));


// ------------------redux分析-------------------
// import {createStore} from "redux"
// function exist(item,products){
//   let index=0
//   for (const product of products) {
//       if(item.id===product.id){
//           return {product,index}
//       }
//        index++
//   }
//   return false
// }
// 声明一个返回状态state的函数，并且接收方法action，根据action.type对state进行不同的处理之后返回一个新的state
// function counter(state={products:[],shoppingcar:{item:[]}},action){
//       switch (action.type){
//           case "ADD-PRODUCT":
//               return {...state,products:[...state.products,action.product]};
//           case "PICK-PRODUCT":
//               debugger
//                let item=action.product
//                let products=state.shoppingcar.item
//                let newItem=[...products]
//                let result=exist(item,products)
//                if(result){
//                    debugger
//                 newItem[result.index]={...result.product,count:newItem[result.index].count+1}
//                }
//                else{
//                   newItem.push({...item,count:1})
//                }
//               return {...state,shoppingcar:{item:newItem}};
//          default:
//              return state
//       }
// }
// createStore用来创建store,该方法需要接收一个state参数
// const store=createStore(counter)

// 订阅store,当store里的state发送改变时触发改回调函数
// store.subscribe(function(){
//     console.log(store.getState())
// })

// 分发一个action动作，触发counter函数返回一个新的state
// store.dispatch({type:"ADD-PRODUCT",product:{id:111,name:"键盘"}})
// store.dispatch({type:"ADD-PRODUCT",product:{id:222,name:"鼠标"}})
// store.dispatch({type:"PICK-PRODUCT",product:{id:111,name:"键盘"}})
// store.dispatch({type:"PICK-PRODUCT",product:{id:111,name:"键盘"}})
